A virtual machine (VM) is a portion of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of an actual physical computer system (e.g., a server, a mainframe computer, etc.). The actual physical computer system is typically referred to as a “host machine,” and the operating system of the host machine is typically referred to as the “host operating system.” Typically, software on the host machine known as a “hypervisor” (or a “virtual machine monitor”) manages the execution of one or more virtual machines or “guests”, providing a variety of functions such as virtualizing and allocating resources, context switching among virtual machines, etc. The operating system of the virtual machine is typically referred to as the “guest operating system.”
A virtual machine may comprise one or more “virtual devices,” each of which maps to a “network device” of the host machine (e.g., a network interface device, a CD-ROM drive, etc.). One type of network device is a network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter, and by similar terms) which contains the electronic circuitry required to communicate using a wired connection (e.g., Ethernet) or a wireless connection (e.g., WiFi).